Presto একটি শক্তিশালী ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা বড় ডেটাসেট এবং একাধিক ডেটা সোর্সে দ্রুত কোয়েরি এক্সিকিউশন পরিচালনা করতে সক্ষম। Query Isolation এবং Resource Sharing হল Presto এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা কোয়েরি এক্সিকিউশন এবং সিস্টেমের রিসোর্স ব্যবস্থাপনা নিয়ন্ত্রণ করতে সাহায্য করে।
এই টিউটোরিয়ালে আমরা Query Isolation এবং Resource Sharing এর মূল ধারণা, কৌশল এবং কিভাবে Presto তে এগুলি কার্যকরভাবে ব্যবহার করা যায় তা আলোচনা করব।
Query Isolation নিশ্চিত করে যে একটি নির্দিষ্ট কোয়েরি বা কাজ অন্য কোয়েরি বা কাজের উপর কোনো প্রভাব ফেলবে না এবং স্বাধীনভাবে সম্পাদিত হবে। এটি একাধিক কোয়েরি বা কাজের একযোগে চলার সময় সিস্টেমের পারফরম্যান্সের ক্ষতি কমিয়ে দেয়।
Presto তে Query Isolation করতে Resource Groups কনফিগার করা হয়। এর মাধ্যমে বিভিন্ন গ্রুপের কোয়েরি একে অপর থেকে আলাদা ভাবে চলতে পারে।
Resource Group Configuration Example:
resource-groups.configuration-file=etc/resource-groups.conf
resource-groups.conf
কনফিগারেশন ফাইলে Query Isolation সেটিংস:
resource-groups:
queries:
low-priority:
query-prioritization: "low"
query-memory-limit: 4GB
high-priority:
query-prioritization: "high"
query-memory-limit: 16GB
এখানে, low-priority
কোয়েরি কম রিসোর্স ব্যবহার করবে এবং high-priority
কোয়েরি বেশি রিসোর্স ব্যবহার করবে।
Resource Sharing হল একাধিক কোয়েরি বা কাজের মধ্যে সিস্টেমের রিসোর্স ভাগ করে ব্যবহার করার প্রক্রিয়া। Presto-তে, একাধিক কোয়েরি একযোগে এক্সিকিউট হলে সিস্টেমের রিসোর্স (যেমন CPU, মেমরি) ভাগ করে ব্যবহার করা হয়। এটি উচ্চ কর্মক্ষমতা নিশ্চিত করতে এবং কোয়েরি এক্সিকিউশনকে আরও স্কেলেবল ও দ্রুত করতে সহায়ক।
Presto তে Resource Sharing এবং Query Prioritization কনফিগার করার জন্য resource-groups.conf
ফাইলটি ব্যবহার করা হয়। এতে আপনি বিভিন্ন query types এবং query memory limits নির্ধারণ করতে পারবেন।
resource-groups.conf
কনফিগারেশন ফাইলের উদাহরণ:
resource-groups:
queries:
low-priority:
query-prioritization: "low"
query-memory-limit: 4GB
high-priority:
query-prioritization: "high"
query-memory-limit: 16GB
scheduling-policy:
concurrency-limit: 100
resource-limit: 50GB
এখানে:
low
এবং high
কনফিগারেশন দিয়ে কোয়েরির অগ্রাধিকার নির্ধারণ করা হয়।Presto তে Query Isolation এবং Resource Sharing একে অপরের পরিপূরক। যখন কোয়েরি এক্সিকিউশনে Query Isolation ব্যবহৃত হয়, তখন একাধিক কোয়েরি একই রিসোর্স ব্যবহার করতে পারে কিন্তু আলাদা আলাদা গ্রুপে। Resource Sharing এই রিসোর্স ব্যবস্থাপনাকে সুষ্ঠুভাবে সম্পন্ন করতে সহায়ক, যাতে একাধিক কোয়েরি সিস্টেমের রিসোর্স ভাগ করে ব্যবহার করতে পারে।
এটি কোয়েরির কার্যকারিতা বৃদ্ধি করে এবং সিস্টেমের পারফরম্যান্স ভালো রাখতে সাহায্য করে।
common.read_more